﻿using PSE.Deployment.SetupBase.Configuration;
using PSE.Deployment.SetupBase.Parameter;
using PSE.Deployment.Engine;
using PSE.Deployment.Engine.Enums;
using PSE.Deployment.Engine.Interfaces;

namespace PSE.Deployment.SetupBase
{
    public abstract class BaseSetupGroup : BaseStepGroup
    {
        public BaseSetupGroup(IStepGroup parent)
            : base(parent)
        {
            this.ErrorBehavior = StepErrorBehavior.NotifyParent;
            this.CancelBehavior = StepGroupCancelBehavior.NotifyParent;
            this.NavigationBehavior = StepNavigationBehavior.NextCancel;

            this.AddPreStepsExecution();

            this.AddStepsExecution();

            this.AddPosStepsExecution();
        }

        protected virtual void AddPreStepsExecution()
        {

        }

        protected virtual void AddStepsExecution()
        {

        }

        protected virtual void AddPosStepsExecution()
        {

        }
    }
}
